package ClasesBasicas;

public class Reina extends Figura{

	public Reina(int fila, int columna, boolean esNegra, Figura[][] array,
			boolean[][] aMovimiento, int codPieza) {
		super(Tipo.Reina, fila, columna, esNegra, array, aMovimiento, codPieza);
	}

	public void posiblesMovimientos() {
		for (int i = 0; i < this.getaMovimiento().length; i++) {
			if (i != columna)
				aMovimiento[fila][i] = true;
		}
		for (int j = 0; j < this.getaMovimiento().length; j++) {
			if (j != fila)
				aMovimiento[j][columna] = true;
		}

		int i = fila;
		int j = columna;

		while ((i < aMovimiento.length) && (j < aMovimiento.length)) { // Es
																		// aMovimiento.length
																		// en
																		// los
																		// dos
																		// porque
																		// el
																		// tablero
																		// es
																		// cuadrado
			if ((i != fila) && (j != columna)) {
				aMovimiento[i][j] = true;
			}
			i++;
			j++;
		}
		i = fila;
		j = columna;
		while ((i >= 0) && (j < aMovimiento.length)) {
			if ((i != fila) && (j != columna)) {
				aMovimiento[i][j] = true;
			}
			i--;
			j++;
		}
		i = fila;
		j = columna;
		while ((i < aMovimiento.length) && (j >= 0)) {
			if ((i != fila) && (j != columna)) {
				aMovimiento[i][j] = true;
			}
			i++;
			j--;
		}
		i = fila;
		j = columna;
		while ((i >= 0) && (j >= 0)) {
			if ((i != fila) && (j != columna)) {
				aMovimiento[i][j] = true;
			}
			i--;
			j--;
		}

	}

	public void dondeSePuedeMover() {
		posiblesMovimientos();
		recorridoDerecha();
		recorridoIzquierda();
		recorridoArriba();
		recorridoAbajo();
		recorridoAbajoDerecha();
		recorridoAbajoIzquierda();
		recorridoArribaDerecha();
		recorridoArribaIzquierda();
		
	}

	public static void main(String[] args) {
		/**
		 * Aqui pruebo que se pone a true la fila y columna que meto Empieza
		 * desde 0 las filas y columnas
		 * 
		 * 
		 * Tablero tb = new Tablero(false); tb.resetearJuego(); Reina f = new
		 * Reina(3, 1, true, tb.getArray(), tb.getaMovimiento()); Reina t2 = new
		 * Reina(5, 3, true, tb.getArray(), tb.getaMovimiento());
		 * f.dondeSePuedeMover();
		 * 
		 * for (int i = 0; i < tb.getaMovimiento().length; i++) { for (int j =
		 * 0; j < tb.getaMovimiento()[i].length; j++) {
		 * System.out.print(tb.getaMovimiento()[i][j]); System.out.print("   ");
		 * } System.out.println(""); }
		 */
	}
}
